Java的问题``

来源:百度知道 编辑:UC知道 时间:2024/06/07 15:56:25
什么叫```类私有化了```不能被直接调用``需要调用静态方法才可以实例化``

就是反类的构造方法设为私有的。比如
class a{
private static a news;
private a(){
}
public static a geta(){
if(a == null){
news = new a();
}
return news;
}
}
在别的类用到a时:
class b{
a aa = a.geta();
}

楼主提到的问题涉及到通过类的静态工厂方法生成实例.

首先通过将类的构造函数的访问控制符设为private,来对该类进行限制以达到不可通过构造函数实例化的目的

在创建一个所谓的静态工厂方法作为类的生成实例的唯一途径,例如下列代码所示:

/**
* 使用静态工厂方法的类
*/
class StaticFactoryClass {

private static StaticFactoryClass instance = new StaticFactoryClass();

private StaticFactoryClass() {

}

public static StaticFactoryClass getInstance() {
return instance;
}
}

/**
* 用来测试的类
*/
public class StaticFactoryTest {
public static void main(String[] args) {

// StaticFactoryClass sfc=new StaticFactoryClass();
// error:The constructor StaticFactoryClass() is not visible

StaticFactoryCl